Thuật phân chia Sắp xếp nhanh

Sau khi phần tử chốt được chọn giải thuật phân chia nên tiến hành như thế nào?

  • Một giải pháp đơn giản nhất cho vấn đề này là duyệt từ đầu đến cuối lần lượt so sánh các phần tử của danh sách với phần tử chốt. Theo cách này, ta phải tiến hành n phép so sánh, ngoài ra còn phải dành n đơn vị bộ nhớ để lưu giữ các giá trị trung gian.
  • Một giải pháp khác được đề nghị là duyệt theo hai đường. Một đường từ đầu danh sách, một đường từ cuối danh sách. Theo cách này, ta tìm phần tử đầu tiên tính từ trái lớn hơn phần tử chốt và phần tử đầu tiên phía phải nhỏ hơn hoặc bằng phần tử chốt rồi đổi chỗ cho nhau. Tiếp tục như vậy cho đến khi hai đường gặp nhau.
  • Để có thể gọi đệ quy ta xét bài toán phân chia một danh sách con của a: a [ k 1 , k 2 ] {\displaystyle a[k_{1},k_{2}]} thành hai danh sách.

Liên quan